package com.ruoyi.alipay.controller;

import com.alipay.api.AlipayApiException;
import com.ruoyi.alipay.common.ApiIdempotent;
import com.ruoyi.alipay.config.AliPayTemplate;
import com.ruoyi.alipay.fegin.PlansFegin;

import com.ruoyi.financial.domain.TCwPaymentPlan;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;


/**
* @author			By--Mr.Liuyusong
* @time			 	2021-06-25 9:14
* @QQ				2312949906
* @Return * @return: null
* @Description  支付调用的Controller
**/
@RestController
@Slf4j

public class PayWebController {
    @Autowired
    private AliPayTemplate aliPayTemplate;
    @Autowired
    private PlansFegin plansFegin;


    /**
     * 调用该方法会去到支付宝支付
     * @return 返回的是支付宝的页面 - produces = "text/html"
     * @throws AlipayApiException 支付异常
     */
    @ApiIdempotent
    @GetMapping(value = "/payOrder", produces = "text/html")
    public String payOrder(Long id) throws AlipayApiException {
        // 这里订单号应该是前端传过来的，即orderSn
        // 但是为了Demo方便测试，前端传来的是一个固定的数字(按理说前端应该传的是具体订单号)
        // 支付宝这个订单号又不能重复，所以在这个方法里实际使用了一个雪花算法生成的订单号，即noStr
        TCwPaymentPlan infos = plansFegin.getInfos(id);
       // String noStr = SnowflakeIdWorker.generateId() + "";
        //infos.setContractNo(noStr);


        //log.info("订单ID：{}", infos.getId());
       // return aliPayTemplate.pay(infos);
return "asd";
    }

    @GetMapping(value = "/update", produces = "text/html")
    public void update(Long id) {
        TCwPaymentPlan plan = plansFegin.getInfos(id);
        plan.setPayState(1);
        plan.setPaidTime(null);
        System.out.println(plan);
        plansFegin.edit(plan);
    }
}
